// pages/list/list.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfoList: [
      { id:0, name:"warrior", email:"423312@qq.cm"},
      { id:1, name: "fury", email: "qwer@qq.cm" }
    ],
    page : 0, // 需要加载的页码
    disableLoadMoreButton: false
  },

  loadMore: function(event) {
    var that = this;
    // console.log(event); // 打印事件信息
    var page = event.currentTarget.dataset.page; // 获取事件所携带的参数(这里的参数是获取哪一页的数据)
    // console.log("需要查询的页码为：" + page); // 打印事件获取到的参数
    that.loadData(page); // 事件触发后就调用数据加载方法
  },

  /**
   * 分页加载数据
   * page: 需要加载的页码
   */
  loadData: function(page) {
    var that = this;

    // 发送ajax请求 begin 
    wx.request({
      url: 'http://localhost:8080/xiangxu/request/findAll.do', // 后台接口地址：访问tomcat的url接口地址
      data: { // 发送给服务器的参数（注意：全部会被转换成string类型的）
        page: page,
        num: 2
      },
      header: {
        'content-type': 'application/json'
      },
      success: function (res) { // 请求成功后的操作
        console.log(res.data) // 打印获取到的数据
        if(res.data.length == 0) { // 请求成功，但是没有数据可以获取时的处理
          // console.log("没有更多的数据啦");
          wx.showToast({  // 提示信息
            title: '数据加载完毕',
            icon: 'success',
            duration: 2000
          });
          that.setData({ // 让加载更多按钮失效
            "disableLoadMoreButton": true
          });
          return false; // 提前结束请求成功方法
        }
        var oldUserData = that.data.userInfoList; // 获取发送请求之前userInfoList中的数据
        var newUserData = oldUserData.concat(res.data); // 将获取到的数据和之前userInfoList中的数据进行整合
        that.setData({
          // userInfoList: res.data, // 将获取到的数据赋值给页面的userInfoList变量
          userInfoList: newUserData, // 将整合后的数据赋值给页面的userInfoList变量
          page: page + 1 // 每次加载成功后都将页码进行加1操作，方便下次查询的时候使用
        });
        if(page == 1) { // 首次加载数据成功后就将加载到的数据存放到缓存中
          wx.setStorageSync("userList", newUserData);
          // console.log('已经将数据保存到缓存中');
        }
      },
      fail: function(res) {
        // console.log("请求发送失败，即将从缓存中获取数据");
        if(page == 1) { // 首次加载失败时就从缓存中加载数据
          var newUserData = wx.getStorageSync("userList"); // 从缓存中获取数据
          // console.log("从缓存中获取到的数据为：");
          // console.log(newUserData);
          if (newUserData) { // 如果缓存中有数据就将数据赋值给页面的userInfoList变量
            that.setData({
              userInfoList: newUserData,
              page: page + 1
            });
          }else { // 如果缓存中没有数据就给出提示信息
            console.log("缓存中的数据为空");
            wx.showToast({  // 提示信息
              title: '网络异常，无缓存数据',
              icon: 'loading',
              duration: 2000
            });
          }
        } else { // 非首次加载的时候直接给出提示信息
          wx.showToast({  // 提示信息
            title: '网络异常，请稍后再试',
            icon: 'loading',
            duration: 2000
          });
        }
      }
    })
    // 发送ajax请求 end
    
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this;
    that.loadData(1); // 首次加载数据时是加载首页的数据
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  }
})